home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #145 (1991-10)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #145 (1991-10)(Rhein-Sieg-Soft).adf
/
Labelstar
/
LabelStar
< prev
next >
Wrap
Text File
|
1991-10-07
|
32KB
|
1,200 lines
' ***************************************
' ** **
' ** Druckerprogramm fuer Etiketten **
' ** Epson **
' ** geschrieben von **
' ** **
' ** Andreas Lesch **
' ** Leverkusen 1989 **
' ** **
' ***************************************
LOCATE 10,14:PRINT "Moment Bitte......."
CLEAR,30000&
DEFINT a-z
DIM text$(30),drucktext$(30),unter(30),posi(30)
DIM druckpos%(30),a$(71),druck$(71),ital(30),prop(30)
DECLARE FUNCTION AskSoftStyle& LIBRARY
DECLARE FUNCTION SetSoftStyle& LIBRARY
init:
teiler=1:xpos1=96:xpos2=112:xpos3=72:xpos4=112:posi=1:ita=53:i=1:di=1
index=1:such=3
suchstring$="den Nachnamen":Pfad$="LS.Daten/"
ON MOUSE GOSUB maus
' Pulldownmenu loeschen
FOR i=1 TO 4
MENU i,0,0,""
NEXT i
ON ERROR GOTO Fehler
LIBRARY "graphics.library"
Fehler=1
ConfigOeffnen:
OPEN Pfad$+"LS.Conf."FOR INPUT AS 3
INPUT #3,mmlang
INPUT #3,mmbreite
INPUT #3,leroben
INPUT #3,rerand
INPUT #3,lirand
INPUT #3,dis
INPUT #3,index
CLOSE 3
altmmlang=mmlang
altmmbreite=mmbreite
altleroben=leroben
altrerand=rerand
altlirand=lirand
altdis=dis
Fehler=2
LOCATE 10,14:PRINT SPACE$(30)
SCREEN 1,640,256,3,2 '*** Screen und Window oeffnen ***
WINDOW 5,"LabelStar /\/\ by Andreas Lesch < Starsoft > /\/\",,16,1
PALETTE 0,0,0,.1
MENU 1,0,1,"Adressen"
MENU 1,1,1,"Öffnen "
MENU 1,2,0,"Suchen "
MENU 1,3,0,"Eingeben"
MENU 1,4,0,"Ändern "
MENU 1,5,0,"Löschen "
MENU 1,6,0,"Drucken "
MENU 2,0,0," Index "
MENU 2,1,1," KndNr. "
MENU 2,2,1," Vorname "
MENU 2,3,1," Nachname"
MENU 2,4,1," Stasse "
MENU 2,5,1," Ort "
MENU 2,6,1," TelNr. "
ON MENU GOSUB Menue
COLOR 1,0 '*** Arbeitsblatt zeichnen ***
CLS
COLOR 4,6
LOCATE 1,1 : PRINT " Drucken "
LOCATE 1,22 : PRINT " Korregieren "
LOCATE 1,44 : PRINT " F-Tasten "
LOCATE 1,67 : PRINT " Ende "
COLOR 7,4
LOCATE 25,27:PRINT "Halbe Geschwindigkeit ="
LOCATE 27,10
PRINT " Italics = "
LOCATE 27,33
PRINT " Bold = "
LOCATE 27,58
PRINT "Underline = "
COLOR 5,7
LOCATE 29,12:PRINT " Links "
LOCATE 29,35:PRINT " Mitte "
LOCATE 29,60:PRINT " Rechts "
COLOR 2,1
LOCATE 25,50:PRINT " Aus"
LOCATE 27,22:PRINT "Aus"
LOCATE 27,45:PRINT "Aus"
LOCATE 27,70:PRINT "Aus"
LINE (85,222)-(187,233),3,b
eingabe:
GOSUB einstellen
i=leroben+1
WINDOW 5
weiter:
GOSUB format
COLOR 1,0
MENU 1,0,1
MENU ON
schreiben:
IF dis=1 THEN
COLOR 0,0
LOCATE 6,3
PRINT SPACE$(23)
IF i=3 THEN
COLOR 6,0
STYLE 0
LOCATE 6,3:PRINT "Diskettenoberseite--->"
STYLE sty
END IF
END IF
COLOR 2,1
a:
COLOR 2,1
MOUSE ON
LOCATE (i+3),41-INT(tebreite/2)
laeng%=(tebreite-(rerand+lirand))
IF dis=1 AND i=3 THEN laeng%=24
IF i=telang+1 THEN GOTO schreiben
col=1
GOSUB einga
text$(i)=erg$
drucktext$(i)=derg$
unter(i)=unt
prop(i)=bold
ital(i)=ita
GOSUB schreiben1
i=i+1
GOTO schreiben
schreiben1:
LOCATE (i+3),41-INT(tebreite/2)
STYLE 0
PRINT SPACE$(LEN(text$(i)))
IF staus=0 THEN STYLE sty
COLOR 2,1
yPos=(i+3)
rerand1=rerand+adrdrucken
LOCATE yPos,41-INT(tebreite/2)+INT(lirand)
IF po=2 THEN LOCATE yPos,41-(INT(LEN(text$(i))/2))
IF po=3 THEN LOCATE yPos,41+INT(tebreite/2)-(rerand1+INT(LEN(text$(i)))-1)
posi(i)=po
IF dis=1 AND i=3 THEN LOCATE 6,30
CALL SetDrMd&(WINDOW(8),0)
PRINT text$(i)
CALL SetDrMd&(WINDOW(8),1)
COLOR 0,0
STYLE 0
GOSUB box
STYLE sty
COLOR 2,1
RETURN
format:
LINE (0,20)-(630,190),0,bf
LINE (320-(INT(tebreite*8/2)+1),22)-(320+(INT(tebreite*8/2)+3),25+(telang*8)),1,bf
box:
LINE (320+(INT(tebreite*8/2)+3),22)-(630,25+(telang*8)),0,bf
RETURN
drucken:
COLOR 1,0
STYLE 0
anz$="1"
IF adrdrucken=0 THEN LOCATE 2,1 : INPUT "Kopien ",anz$
anzahlkopie=VAL(anz$)
IF anzahlkopie<1 THEN
STYLE 0
LOCATE 2,1 : PRINT SPACE$(10);
STYLE sty
a$(1)=""
GOTO a
END IF
STYLE sty
OPEN "par:" FOR OUTPUT AS 1
zeilen=i
IF ler<0 THEN ler=0
PRINT #1,CHR$(27);CHR$(82);CHR$(2); 'Deutscher Zeichensatz
PRINT #1,CHR$(27);CHR$(115);CHR$(halbg); 'Halbe Geschwindigkeit
FOR j=1 TO INT(anzahlkopie)
FOR k=0 TO leroben
drucktext$(k)=" "
NEXT k
FOR k=zeilen TO telang
drucktext$(k)=" "
NEXT k
FOR i=1 TO telang+1
rerand1=rerand+adrdrucken
IF posi(i)=1 THEN druckpos%(i)=lirand
IF posi(i)=2 THEN druckpos%(i)=INT((tebreite/2)-(INT(LEN(text$(i))/2)))
IF posi(i)=3 THEN druckpos%(i)=INT(tebreite-(rerand1+LEN(text$(i)))+1)
PRINT #1,CHR$(27);CHR$(120);CHR$(cod); 'NLQ
PRINT #1,CHR$(27);CHR$(45);CHR$(unter(i)); 'Unterstreichen
PRINT #1,CHR$(27);CHR$(112);CHR$(prop(i)); 'Proportial
PRINT #1,CHR$(27);CHR$(ital(i)); 'Italics
PRINT #1,CHR$(27);CHR$(108);CHR$(druckpos%(i)); 'Linker Rand
IF dis=1 AND i=3 THEN
PRINT #1,CHR$(27);CHR$(108);CHR$(0);
PRINT #1,CHR$(27);CHR$(83);CHR$(0); 'Indexmodus ein
IF j=1 THEN
drucktext$(3)="_ "+drucktext$(3)+SPACE$(24-LEN(drucktext$(3)))+"_"
END IF
END IF
PRINT #1,drucktext$(i)
IF dis=1 AND i=3 THEN PRINT #1,CHR$(27);CHR$(84); 'Indexmodus aus
NEXT i
NEXT j
CLOSE 1
FOR i=1 TO 30
drucktext$(i)=""
text$(i)=""
NEXT i
IF adrdrucken=1 THEN RETURN
STYLE 0
LOCATE 2,1:PRINT SPACE$(10)
STYLE sty
GOSUB format
i=leroben+1
GOTO schreiben
ende:
WINDOW 3,,(244,52)-(388,92),16,1
COLOR 6,4
CLS
PRINT "Programm beenden?"
COLOR 3,4 : PRINT STRING$(17,"-") : COLOR 5,4
PRINT
PRINT " JA NEIN " : ' 7 leerstellen
LINE (8,20)-(38,36),3,b : LINE (80,20)-(128,36),3,b
controlle:
WHILE MOUSE(0)<1:WEND
dummy=MOUSE(0) : x=MOUSE(1) : y=MOUSE(2)
IF y>19 AND y<37 AND x>7 AND x<39 THEN
LINE (8,20)-(38,36),3,bf
FOR ton=250 TO 10 STEP -25
SOUND 349,1,ton
NEXT
WINDOW CLOSE 3
MENU RESET
SCREEN CLOSE 1
SYSTEM
END IF
IF y>19 AND y<37 AND x>79 AND x<129 THEN
LINE (80,20)-(128,36),3,bf
FOR x=250 TO 10 STEP -25
SOUND 329,1,x
NEXT
WINDOW CLOSE 3
RETURN a
END IF
GOTO controlle
einstellen:
LINE (320-(INT(tebreite*8/2)),22)-(320+(INT(tebreite*8/2)),25+(telang*8)),0,bf
WINDOW 2," Etikettenformat ",(200,40)-(440,160),0,1
COLOR 2,1
CLS
controlle1:
tebreite=INT(mmbreite/2.5)
telang =INT(mmlang/4.375)
LOCATE 2,1:PRINT "Etikettenbreite ---->"tebreite
LOCATE 3,1:PRINT "Etikettenl"CHR$(228)"nge ---->"telang
LOCATE 4,1:PRINT "Linker Rand ------->"lirand
LOCATE 5,1:PRINT "Rechter Rand ------->"rerand
LOCATE 6,1:PRINT "Leerzeilen von oben >"leroben
LOCATE 7,1:PRINT "Breite in mm ------->"mmbreite
LOCATE 8,1:PRINT "Höhe in mm --------->"mmlang
LOCATE 10,1 : PRINT "Druck ->"
LOCATE 10,10 : PRINT "Draft NLQ" '6* Space
IF dis=1 THEN LINE (0,86)-(130,96),3,b
LINE (204,102)-(228,112),3,b
LINE (xpos3,71)-(xpos4,80),3,b
LOCATE 12,2 : PRINT "3,5' Etiketten"
LOCATE 12,25 : PRINT "Test"
LOCATE 14,27 : PRINT "OK"
LOCATE 14,2 : PRINT "Save"
LINE (6,102)-(42,112),3,b
WHILE MOUSE(0)<1:WEND
dummy=MOUSE(0) : x=MOUSE(1) : y=MOUSE(2)
IF x<201 THEN
IF y>7 AND y<17 AND dis=0 THEN
LOCATE 2,23 : PRINT SPACE$(9)
LOCATE 2,23 : LINE INPUT;teb$
IF LEN(teb$)>4 THEN GOTO controlle1
tebreite=VAL(teb$)
IF tebreite>70 THEN tebreite=70
IF tebreite<1 THEN tebreite=2
mmbreite=tebreite*2.5
END IF
IF y>15 AND y<25 AND dis=0 THEN
LOCATE 3,23 : PRINT SPACE$(9)
LOCATE 3,23 : LINE INPUT;tela$
telang=VAL(tela$)
IF LEN(tela$)>4 THEN GOTO controlle1
IF telang>20 THEN telang=20
IF telang<1 THEN telang=1
mmlang=telang*4.375
END IF
IF y>23 AND y<33 THEN
LOCATE 4,23 : PRINT SPACE$(9)
LOCATE 4,23 : LINE INPUT;lira$
IF LEN(lira$)>4 THEN GOTO controlle1
lirand=VAL(lira$)
IF lirand>tebreite THEN
BEEP
lirand=tebreite-1
GOTO controlle1
END IF
IF lirand <0 OR lirand+rerand>=tebreite THEN lirand=0
rand=lirand+rerand
END IF
IF y>31 AND y<41 THEN
LOCATE 5,23 : PRINT SPACE$(9)
LOCATE 5,23 : LINE INPUT;rera$
IF LEN(rera$)>4 THEN GOTO controlle1
rerand=VAL(rera$)
IF lirand+rerand>=tebreite THEN rerand=0
IF rerand>tebreite THEN
BEEP
rerand=tebreite-1
GOTO controlle1
END IF
IF rerand <0 THEN rerand=0
rand=rerand+lirand
END IF
IF y>39 AND y<49 AND dis=0 THEN
LOCATE 6,23 : PRINT SPACE$(9)
LOCATE 6,23 : LINE INPUT;lero$
IF LEN(lero$)>4 THEN GOTO controlle1
leroben=VAL(lero$)
IF leroben>telang THEN leroben=telang
IF leroben<0 THEN leroben=0
END IF
IF y>48 AND y<58 AND dis=0 THEN
LOCATE 7,23 : PRINT SPACE$(9)
LOCATE 7,23 : LINE INPUT;tebmm$
IF LEN(tebmm$)>4 THEN GOTO controlle1
mmbreite=VAL(tebmm$)
IF mmbreite>175 THEN mmbreite=175
IF mmbreite<3 THEN mmbreite=3
LOCATE 7,22:PRINT SPACE$(9)
END IF
IF y>57 AND y<67 AND dis=0 THEN
LOCATE 8,23 : PRINT SPACE$(9)
LOCATE 8,23 : LINE INPUT;telmm$
IF LEN(telmm$)>4 THEN GOTO controlle1
mmlang=VAL(telmm$)
IF mmlang>100 THEN mmlang=100
IF mmlang<5 THEN mmlang=5
LOCATE 8,22:PRINT SPACE$(9)
END IF
END IF
IF y>101 AND y<113 THEN
IF x>203 AND x<229 THEN '** OK **
WINDOW CLOSE 2
WINDOW 5
FOR j=0 TO i
text$(j)=""
drucktext$(j)=""
NEXT j
GOSUB format
RETURN
END IF
IF x>5 AND x<43 THEN
LINE (6,102)-(42,112),3,bf
GOSUB conf '** Save
LINE (6,102)-(42,112),2,bf
LINE (6,102)-(42,112),3,b
LOCATE 14,27 : PRINT "OK"
END IF
END IF
IF y>85 AND y<97 THEN
IF x>188 AND x<229 THEN '** Test
OPEN "par:" FOR OUTPUT AS 1
FOR j=1 TO telang
IF dis=1 AND j=3 THEN
PRINT #1,CHR$(27);CHR$(83);CHR$(1);
END IF
PRINT #1,STRING$(tebreite,"X")
IF dis=1 AND j=3 THEN
PRINT #1,CHR$(27);CHR$(84);
END IF
NEXT j
PRINT #1," "
CLOSE 1
END IF
IF x<131 THEN '** 3,5'
IF dis=0 THEN
dis=1
LINE (0,86)-(130,96),3,b
leroben=2:mmlang=70:mmbreite=70
GOTO controlle1
END IF
IF dis=1 THEN
dis=0
LINE (0,86)-(130,96),1,b
END IF
END IF
END IF
IF y>70 AND y<81 THEN
IF x>71 AND x<112 THEN
LINE (72,71)-(112,80),3,b
LINE (160,71)-(184,80),1,b
xpos3=72 : xpos4=112
cod=0
END IF
IF x>159 AND x<185 THEN
LINE (72,71)-(112,80),1,b
LINE (160,71)-(184,80),3,b
xpos3=160 : xpos4=184
cod=1
END IF
END IF
GOTO controlle1
conf:
OPEN Pfad$+"LS.Conf."FOR OUTPUT AS 3
PRINT #3,mmlang
PRINT #3,mmbreite
PRINT #3,leroben
PRINT #3,rerand
PRINT #3,lirand
PRINT #3,dis
PRINT #3,index
CLOSE 3
RETURN
korr:
WINDOW 4,"Korrektur",(200,40)-(440,90),0,1
COLOR 4,6
CLS
PRINT
PRINT "neues Format Eingabe löschen"
PRINT
LOCATE 4,11:PRINT "abbrechen"
controlle2:
WHILE MOUSE(0)<1 : WEND
dummy=MOUSE(0)
x=MOUSE(1) : y=MOUSE(2)
IF x>0 AND x<97 AND y>7 AND y<17 THEN
WINDOW CLOSE 4
WINDOW 5
GOTO eingabe
END IF
IF x>118 AND x<241 AND y>7 AND y<17 THEN
WINDOW CLOSE 4
WINDOW 5
i=leroben+1
LINE (320-(INT(tebreite*8/2)),22)-(320+(INT(tebreite*8/2)),25+(telang*8)),1,bf
FOR j=1 TO 30
text$(j)=""
drucktext$(j)=""
NEXT j
GOTO schreiben
END IF
IF x>79 AND x<153 AND y>23 AND y<33 THEN
WINDOW CLOSE 4
WINDOW 5
GOTO a
END IF
GOTO controlle2
FTasten:
lei$=Pfad$+"F-Tasten "+STR$(laeng%)+" Zeichen"
WINDOW 4,lei$,(200,40)-(440,90),0,1
COLOR 4,6
CLS
PRINT
PRINT " Laden Belegen "
PRINT
LOCATE 4,11:PRINT "abbrechen"
LINE (24,7)-(97,17),2,b
LINE (126,7)-(198,17),2,b
LINE (72,23)-(161,33),2,b
controlle3:
WHILE MOUSE(0)<1 : WEND
dummy=MOUSE(0)
x=MOUSE(1) : y=MOUSE(2)
IF x>23 AND x<97 AND y>7 AND y<17 THEN 'Laden
GOSUB DateiWindow
Fehler=3
OPEN Pfad$+Datnam$ FOR INPUT AS 2
FOR ta =0 TO 9
INPUT #2,ftext$(ta)
INPUT #2,fdrucktext$(ta)
NEXT ta
CLOSE 2
GOSUB Dateizu
GOTO a
END IF
IF x>125 AND x<199 AND y>7 AND y<17 THEN 'Belegen
WINDOW CLOSE 4
GOSUB Ftastschr
FOR ta=0 TO 9
LOCATE ta+1,6
col=0
GOSUB einga
ftext$(ta)=erg$
fdrucktext$(ta)=derg$
IF ftext$(ta)=CHR$(13) THEN
ftext$(ta)=altftext$(ta)
fdrucktext$(ta)=altfdrucktext$(ta)
END IF
NEXT ta
LOCATE 13,1
PRINT "Save?"
PRINT "J/N"
zurueck:
WHILE jn$=""
jn$=INKEY$
IF jn$="n" OR jn$="N" THEN
jn$=""
WINDOW CLOSE 6
WINDOW 5
GOTO a
END IF
IF jn$="j" OR jn$="J" THEN
jn$=""
GOSUB DateiWindow
OPEN Pfad$+Datnam$ FOR OUTPUT AS 2
FOR ta =0 TO 9
PRINT #2,ftext$(ta)
PRINT #2,fdrucktext$(ta)
NEXT ta
CLOSE 2
GOSUB Dateizu
GOTO a
END IF
WEND
jn$=""
GOTO zurueck
END IF
IF x>72 AND x<162 AND y>23 AND y<33 THEN 'Abbrechen
WINDOW CLOSE 4
WINDOW 5
GOTO a
END IF
GOTO controlle3
GOTO schreiben
Fehler:
IF ERR=53 THEN
IF Fehler =0 THEN
BEEP
CLS
LOCATE 13,10 : PRINT "Keine Graphics.bmap vorhanden "
LOCATE 15,10 : PRINT "Programm wird beendet "
LOCATE 17,10 : PRINT "Taste drÜcken"
SLEEP:SLEEP:SLEEP
SYSTEM
END IF
IF Fehler=1 THEN
Fehler=4
CLOSE 3
GOSUB conf
RESUME ConfigOeffnen
END IF
IF Fehler=3 THEN
BEEP
WINDOW 7
CLS
PRINT "Datei nicht vorhanden"
FOR warte =1 TO 12000 :NEXT warte
GOSUB Dateizu
END IF
END IF
RESUME a
Ftastschr:
WINDOW 6,"F-Tasten Belegen",(0,10)-((laeng%*8)+39,130),0,1
FOR ta=0 TO 8
PRINT "F";ta+1;":"
NEXT ta
PRINT "F 10:"
FOR ta=0 TO 9
altftext$(ta)=ftext$(ta)
altfdrucktext$(ta)=fdrucktext$(ta)
LOCATE ta+1,6:PRINT ftext$(ta)
NEXT ta
RETURN
DateiWindow:
WINDOW 7,"Geben Sie den Dateinamen ein:",(0,133)-(230,150),0,1
LINE INPUT;Datn$
Datnam$=LEFT$(Datn$+".FTB",13)
RETURN
Dateizu:
WINDOW CLOSE 6
WINDOW CLOSE 7
WINDOW 5
RETURN
maus:
dummy=MOUSE(0)
x=MOUSE(1) : y=MOUSE(2)
IF y>0 AND y<10 THEN
IF x>0 AND x<106 THEN GOTO drucken
IF x>168 AND x<275 THEN GOTO korr
IF x>344 AND x<451 THEN GOTO FTasten
IF x>523 AND x<630 THEN GOSUB ende
END IF
IF y>191 AND y<201 THEN
IF x>206 AND x<385 THEN
IF halbg=0 THEN
halbg=1
STYLE 0
LOCATE 25,51:PRINT "Ein"
STYLE sty
GOSUB loca
RETURN
END IF
IF halbg=1 THEN
halbg=0
STYLE 0
LOCATE 25,51:PRINT "Aus"
STYLE sty
GOSUB loca
END IF
END IF
END IF
IF y>207 AND y<217 THEN
IF x>71 AND x<225 THEN
IF ita=52 THEN
ita=53:sty=sty-4
STYLE 0
LOCATE 27,22:PRINT "Aus"
GOSUB loca
STYLE sty
RETURN
END IF
IF ita=53 THEN
ita=52:sty=sty+4
STYLE 0
LOCATE 27,22:PRINT "Ein"
GOSUB loca
STYLE sty
RETURN
END IF
END IF
IF x>255 AND x<369 THEN
IF bold=1 THEN
bold=0:sty=sty-2
STYLE 0
LOCATE 27,45:PRINT "Aus"
GOSUB loca
STYLE sty
RETURN
END IF
IF bold=0 THEN
bold=1:sty=sty+2
STYLE 0
LOCATE 27,45:PRINT "Ein"
GOSUB loca
STYLE sty
RETURN
END IF
END IF
IF x>455 AND x<553 THEN
IF unt=1 THEN
unt=0:sty=sty-1
STYLE 0
LOCATE 27,70:PRINT "Aus"
GOSUB loca
STYLE sty
RETURN
END IF
IF unt=0 THEN
unt=1:sty=sty+1
STYLE 0
LOCATE 27,70:PRINT "Ein"
GOSUB loca
STYLE sty
END IF
END IF
END IF
IF y>222 AND y<233 THEN
IF x>85 AND x<187 THEN
LINE (85,222)-(187,233),3,b
LINE (270,222)-(371,233),0,b
LINE (470,222)-(570,233),0,b
po=1
END IF
IF x>270 AND x<371 THEN
LINE (85,222)-(187,233),0,b
LINE (270,222)-(371,233),3,b
LINE (470,222)-(570,233),0,b
po=2
END IF
IF x>470 AND x<570 THEN
LINE (85,222)-(187,233),0,b
LINE (270,222)-(371,233),0,b
LINE (470,222)-(570,233),3,b
po=3
END IF
END IF
RETURN
loca:
LOCATE i+3,41-INT(tebreite/2)
RETURN
Menue:
men=MENU(0):mep=MENU(1)
IF men=1 THEN
IF mep=1 THEN
OPEN "r",#4,Pfad$+"LS.Adressen",145
FIELD #4,10 AS adr$(1),30 AS adr$(2),30 AS adr$(3),30 AS adr$(4),30 AS adr$(5),15 AS adr$(6)
MENU 1,1,0
FOR me=2 TO 6
MENU 1,me,1
NEXT me
MENU 2,0,1
END IF
IF mep=2 THEN
FOR me=2 TO 6
MENU 1,me,0
NEXT me
lei$="Geben Sie "+suchstring$+" ein:"
WINDOW 7,lei$,(0,183)-(330,210),0,1
LINE INPUT;naname$
IF naname$="" THEN
FOR me=2 TO 6
MENU 1,me,1
NEXT me
WINDOW CLOSE 7
WINDOW OUTPUT 5
RETURN
END IF
IF naname$="*" THEN naname$=" "
l=0
AdressenSuchen:
l=l+1
GET #4,l
IF INSTR(1,UCASE$(adr$(such)),UCASE$(naname$))=0 AND l<index THEN GOTO AdressenSuchen
IF INSTR(1,UCASE$(adr$(such)),UCASE$(naname$))<>0 THEN
WINDOW OUTPUT 5
GOSUB format
GOSUB Adrkorr
FOR zu=1 TO 6
saveadr$(zu)=helpadr$(zu)
NEXT zu
helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
IF LEN(helpadr$(7)) > (tebreite-lirand-rerand) THEN
helptextlaenge=(tebreite-lirand-rerand-2)-LEN(helpadr$(3))
IF helptextlaenge<0 THEN helptextlaenge=0
helpadr$(2)=LEFT$(helpadr$(2),helptextlaenge)+"."
helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
END IF
helpadr$(2)=helpadr$(7)
helpadr$(3)=helpadr$(4)
helpadr$(4)=helpadr$(5)
helpadr$(5)=helpadr$(6)
adrdrucken=1
i=leroben+1
FOR in=1 TO 4
drucktext$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
GOSUB DrSonderzeichen
text$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
staus=1
GOSUB schreiben1
staus=0
i=i+1
NEXT in
FOR zu=1 TO 6
helpadr$(zu)=saveadr$(zu)
NEXT zu
adrdrucken=0
WINDOW OUTPUT 7
CLS
LOCATE 2,1:PRINT "Weiter nach ";naname$;" Suchen (J/N)"
warte$=""
WHILE warte$="":warte$=INKEY$:WEND
IF warte$="j" OR warte$="J" THEN
CLS
GOTO AdressenSuchen
END IF
FOR me=2 TO 6
MENU 1,me,1
NEXT me
WINDOW CLOSE 7
WINDOW 5
GOSUB loca
col=1
ELSE
LOCATE 1,1
BEEP
PRINT "Adresse nicht in der Datei"
PRINT "Linke Maustaste drÜcken"
SLEEP:SLEEP:SLEEP
WINDOW CLOSE 7
WINDOW 5
FOR me=2 TO 6
MENU 1,me,1
NEXT me
i=leroben+1
GOSUB format
GOSUB loca
col=1
RETURN
END IF
RETURN
END IF
IF mep=3 THEN
adrtitel$="Adressen eingeben"
GOSUB AdrListe
altlaeng=laeng%
AdrEing:
eingindex=index
LOCATE 11,1:PRINT index-1;" Adressen in der Datei"
LOCATE 12,25:PRINT "Abbrechen mit < * >"
col=0
laeng%=14
LOCATE 1,13:GOSUB einga
LOCATE 12,25:PRINT SPACE$(20)
IF erg$="*"+CHR$(13) THEN
laeng%=altlaeng
WINDOW CLOSE 6
WINDOW 5
col=1
GOTO AufConf
END IF
IF erg$="" THEN erg$=CHR$(13)
IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
eadr$(1)=erg$
FOR zaehler=2 TO 5
laeng%=29
LOCATE zaehler,13:GOSUB einga
IF erg$="" THEN erg$=CHR$(13)
IF LEN(erg$)=29 THEN erg$=erg$+CHR$(13)
eadr$(zaehler)=erg$
NEXT zaehler
laeng%=14
LOCATE 6,13:GOSUB einga
IF erg$="" THEN erg$=CHR$(13)
IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
eadr$(6)=erg$
col=1
datler=0
FOR tu=1 TO 6
IF eadr$(tu)<>CHR$(13) THEN datler=1
NEXT tu
IF datler=1 THEN
GOSUB AufDatei
index=index+1
END IF
LOCATE 11,1:PRINT index-1;" Adressen in der Datei"
LOCATE 9,13:PRINT "Weitere eingaben? (J/N)"
warte$=""
WHILE warte$=""
warte$=INKEY$
IF warte$="J" OR warte$="j" OR warte$=CHR$(13) THEN
LOCATE 9,13:PRINT SPACE$(25)
FOR t=1 TO 6
LOCATE t,13:PRINT SPACE$(30)
NEXT t
GOTO AdrEing
END IF
WEND
AufConf:
OPEN Pfad$+"LS.Conf."FOR OUTPUT AS 3
PRINT #3,altmmlang
PRINT #3,altmmbreite
PRINT #3,altleroben
PRINT #3,altrerand
PRINT #3,altlirand
PRINT #3,altdis
PRINT #3,index
CLOSE 3
laeng%=altlaeng
WINDOW CLOSE 6
WINDOW 5
GOSUB loca
END IF
IF mep=4 THEN
adrtitel$="Adresse ändern"
GOSUB AdrListe
datler=0
FOR zaehler=1 TO 6
LOCATE zaehler,13:PRINT helpadr$(zaehler)
IF helpadr$(zaehler)<>"" THEN datler=1
NEXT zaehler
IF datler=0 THEN
BEEP
LOCATE 10,5:PRINT "Erst Adresse << Suchen >>"
LOCATE 11,5:PRINT "Linke Maustaste drÜcken"
WHILE MOUSE(0)<>-1:WEND
WINDOW CLOSE 6
WINDOW 5
RETURN
END IF
LOCATE 10,5 : PRINT "Abbrechen mit *"
col=0
altlaeng=laeng%
laeng%=14
normalPrint=1
LOCATE 1,13:GOSUB einga
LOCATE 12,25:PRINT SPACE$(20)
IF erg$="*"+CHR$(13) THEN
laeng%=altlaeng
normalPrint=0
WINDOW CLOSE 6
WINDOW 5
RETURN
END IF
IF erg$=""+CHR$(13) THEN erg$=helpadr$(1)+CHR$(13)
IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
eadr$(1)=erg$
FOR zaehler=2 TO 5
laeng%=29
LOCATE zaehler,13:GOSUB einga
IF erg$=""+CHR$(13) THEN erg$=helpadr$(zaehler)+CHR$(13)
IF LEN(erg$)=29 THEN erg$=erg$+CHR$(13)
eadr$(zaehler)=erg$
NEXT zaehler
laeng%=14
LOCATE 6,13:GOSUB einga
IF erg$=""+CHR$(13) THEN erg$=helpadr$(6)+CHR$(13)
IF LEN(erg$)=14 THEN erg$=erg$+CHR$(13)
eadr$(6)=erg$
normalPrint=0
eingindex=l
GOSUB AufDatei
WINDOW CLOSE 6
WINDOW 5
laeng%=altlaeng
RETURN
END IF
IF mep=5 THEN
adrtitel$="Adresse löschen"
GOSUB AdrListe
datler=0
FOR zaehler=1 TO 6
LOCATE zaehler,13:PRINT helpadr$(zaehler)
IF helpadr$(zaehler)<>"" THEN datler=1
NEXT zaehler
IF datler=0 THEN
BEEP
LOCATE 10,5:PRINT "Erst Adresse << Suchen >>"
LOCATE 11,5:PRINT "Linke Maustaste drÜcken"
WHILE MOUSE(0)<>-1:WEND
WINDOW CLOSE 6
WINDOW 5
RETURN
END IF
BEEP:BEEP
LOCATE 10,5:PRINT "Adresse wirklich Löschen ?? (J/N)
warte$=""
WHILE warte$="":warte$=INKEY$:WEND
IF warte$="J" OR warte$="j" THEN
FOR zaehler=1 TO 6
eadr$(zaehler)=CHR$(13)
NEXT zaehler
eingindex=l
GOSUB AufDatei
LOCATE 11,5:PRINT "Adresse ist gelöscht"
ELSE
LOCATE 11,5:PRINT "Adresse ist nicht gelöscht"
END IF
BEEP
FOR warte=1 TO 7000:NEXT
WINDOW CLOSE 6
WINDOW 5
RETURN
END IF
IF mep=6 THEN
dr:
adrdrucken=1
FOR l1=1 TO index-1
GET #4,l1
GOSUB Adrkorr
datler=0
GOSUB LerDatei
FOR zu=1 TO 6
saveadr$(zu)=helpadr$(zu)
NEXT zu
helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
IF LEN(helpadr$(7)) > (tebreite-lirand-rerand) THEN
helptextlaenge=(tebreite-lirand-rerand-2)-LEN(helpadr$(3))
IF helptextlaenge<0 THEN helptextlaenge=0
helpadr$(2)=LEFT$(helpadr$(2),helptextlaenge)+"."
helpadr$(7)=helpadr$(2)+" "+helpadr$(3)
END IF
helpadr$(2)=helpadr$(7)
helpadr$(3)=helpadr$(4)
helpadr$(4)=helpadr$(5)
helpadr$(5)=helpadr$(6)
IF datler=1 THEN
i=leroben+1
FOR in=1 TO 4
drucktext$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
GOSUB DrSonderzeichen
text$(i)=LEFT$(helpadr$(in),tebreite-lirand-rerand)
staus=1
GOSUB schreiben1
staus=0
i=i+1
NEXT in
GOSUB drucken
GOSUB format
END IF
FOR zu=1 TO 6
helpadr$(zu)=saveadr$(zu)
NEXT zu
NEXT l1
i=leroben+1
adrdrucken=0
COLOR 2,1
RETURN a
END IF
END IF
IF men=2 THEN
such=mep
FOR tu=1 TO 6
MENU 2,tu,1
NEXT tu
IF mep=1 THEN suchstring$="die Kundennummer":MENU 2,1,2
IF mep=2 THEN suchstring$="den Vornamen":MENU 2,2,2
IF mep=3 THEN suchstring$="den Nachnamen":MENU 2,3,2
IF mep=4 THEN suchstring$="die Strasse":MENU 2,4,2
IF mep=5 THEN suchstring$="den Ort":MENU 2,5,2
IF mep=6 THEN suchstring$="die Telefonnummer":MENU 2,6,2
END IF
RETURN
HelpPrg:
DrSonderzeichen:
drt$=""
altp=p
p=1
FOR zu=1 TO LEN(drucktext$(i))
druck$(p)=MID$(drucktext$(i),zu,1)
GOSUB Sonderzeichen
drt$=drt$+druck$(p)
NEXT zu
drucktext$(i)=drt$
p=altp
RETURN
AufDatei:
FOR zaehler =1 TO 6
LSET adr$(zaehler)=eadr$(zaehler)
NEXT zaehler
PUT #4,eingindex
RETURN
VonDatei:
RETURN
AdrListe:
WINDOW 6,adrtitel$,(145,30)-(495,140),0,1
PRINT "Kunden.Nr.:"
PRINT "Vorname :"
PRINT "Nachname :"
PRINT "Strasse :"
PRINT "Ort :"
PRINT "Tel.Nr :"
RETURN
LerDatei:
FOR tu=1 TO 6
IF helpadr$(tu)<>"" THEN datler=1
NEXT tu
RETURN
Adrkorr:
FOR korr=1 TO 6
stringpos=0
WHILE helpstr$<>CHR$(13)
stringpos=stringpos+1
helpstr$=MID$(adr$(korr),stringpos,1)
helpstr1$=helpstr1$+helpstr$
WEND
adrlen=LEN(helpstr1$)-1
helpadr$(korr)=LEFT$(helpstr1$,adrlen)
helpstr$="":helpstr1$=""
NEXT korr
RETURN
einga:
p=1:a$(1)=""
ab:
WHILE a$(p)=""
a$(p)=INKEY$
x1=POS(u)*8:y1=CSRLIN*8
LINE (x1-7,y1-1)-(x1-1,y1-1),,bf
WEND
LINE (x1-7,y1-1)-(x1-1,y1-1),col,bf
IF a$(p)=CHR$(8) THEN
LINE (x1-7,y1-1)-(x1-1,y1-1),col,bf
a$(p)="":a$(p-1)=""
p=p-1
IF p<1 THEN
p=1
GOTO ab
END IF
LOCATE CSRLIN,POS(u) :PRINT CHR$(8);
GOTO ab
END IF
IF a$(p)>CHR$(27) AND a$(p)<CHR$(32) THEN 'Pfeile
a$(p)=""
GOTO ab
END IF
IF a$(p)=CHR$(9) AND men<>1 AND mep<>2 THEN 'TAB
a$(p)=""
GOTO ab
END IF
IF a$(1)=CHR$(139) THEN 'HELP
a$(p)=""
GOTO ab
END IF
IF a$(p) >= CHR$(129) AND a$(p) <=CHR$(138) AND p>1 THEN
a$(p)=""
GOTO ab
END IF
IF a$(p) >= CHR$(129) AND a$(p) <=CHR$(138) AND p>1 THEN
a$(p)=CHR$(13)
GOTO ab
END IF
IF a$(1) >= CHR$(129) AND a$(1) <=CHR$(138) THEN
erg$=LEFT$(ftext$(ASC(a$(1))-129),laeng%) 'F-Tasten
derg$=LEFT$(fdrucktext$(ASC(a$(1))-129),laeng%)
GOTO wei1
END IF
IF a$(1)=CHR$(27) THEN GOTO ende 'ESC
IF a$(p)=CHR$(13) THEN GOTO wei
IF p>laeng% THEN
a$(p)=""
BEEP
LINE (x1-7,y1-1)-(x1-1,y1-1),0,bf
GOTO ab
END IF
druck$(p)=a$(p)
GOSUB Sonderzeichen
IF normalPrint=0 THEN CALL SetDrMd&(WINDOW(8),0)
PRINT a$(p);
CALL SetDrMd&(WINDOW(8),1)
p=p+1
GOTO ab
wei:
zw$="":dzw$=""
FOR x=1 TO p
zw$=LEFT$(zw$,x)+a$(x)
dzw$=LEFT$(dzw$,x)+druck$(x)
NEXT
erg$=LEFT$(zw$,p)
derg$=LEFT$(dzw$,p)
LINE (x1-7,y1-1)-(x1-1,y1-1),0,bf
wei1:
FOR s=1 TO p
a$(s)=""
druck$(s)=""
NEXT
RETURN
Sonderzeichen:
IF druck$(p)="ö" THEN druck$(p) = CHR$(124)
IF druck$(p)="Ö" THEN druck$(p) = CHR$(92)
IF druck$(p)="ä" THEN druck$(p) = CHR$(123)
IF druck$(p)="Ä" THEN druck$(p) = CHR$(91)
IF druck$(p)="ü" THEN druck$(p) = CHR$(125)
IF druck$(p)="Ü" THEN druck$(p) = CHR$(93)
IF druck$(p)="ß" THEN druck$(p) = CHR$(126)
RETURN
SUB STYLE(STYLE%) STATIC
bits&=AskSoftStyle&(WINDOW(8))
newStyle&=SetSoftStyle&(WINDOW(8),STYLE%,bits&)
END SUB